﻿package sch.jl.caigou.dao;

import java.util.List;

public interface Dao<T> {

	/**
	 * 
	 * @param sql:待执行的SQL语句
	 * @param args：可变参数
	 * @return：插入新纪录的id
	 */
	long insert(String sql,Object...args);
	/**
	 * 
	 * @param sql
	 * @param args
	 */
	void update(String sql,Object...args);
	/**
	 *
	 * @param sql
	 * @param args
	 * @return  返回与记录对应的一个对象
	 */
	T query(String sql,Object...args);
	/**
	 * 执行多条记录的查询操作, 返回与记录对应的类的一个 List
	 * @param sql
	 * @param args
	 * @return 返回与记录对应的类的一个 List
	 */
	List<T> queryForList(String sql,Object...args);
	
	/**
	 * 执行一个属性或值的查询操作, 例如查询某一条记录的一个字段, 或查询某个统计信息, 返回要查询的值
	 * @param sql: 待执行的 SQL 语句
	 * @param args: 填充占位符的可变参数
	 * @return: 执行一个属性或值的查询操作, 例如查询某一条记录的一个字段, 或查询某个统计信息, 返回要查询的值
	 */
	<V> V getSingleVal(String sql,Object...args);
}
